There are generally two basic kinds of filter: infinite impulse response (IIR) filters and finite impulse response (FIR) filters. IIR filters have an impulse response function that is non-zero over an infinite length of time. This is in contrast to finite impulse response (FIR) filters, which have fixed-duration impulse responses. As compared with a FIR filter, an IIR filter has the advantage of requiring less filter coefficients to achieve the same filter specifications. IIR filters are widely used in sigma-delta modulation for A/D and D/A codec implementation. They are also used in many filter applications.
Due to artifacts arising in the filtering process, IIR filters are prone to annoying idle tones, which are present in the absence of an input signal. The idle tone occurs when the filter input signal disappears (goes to zero) and the filter internal memory does not go away, but remains alive with an internal feedback loop. This results in an output in the absence of an input. This output follows some pattern depending on the initial filter memory conditions, which will periodically repeat the pattern at certain frequency.
In speech and voice applications, the idle tone produces a tone-like noise during quiet time. Since the idle tone depends on the filter memory initial value before the input signal disappears, the idle tone is very unpredictable as to whether it happens or not. Even if it happens, the tone frequency and strength are also unpredictable.
A known approach to reduce the idle tone is to dither the filter memory with pseudo random noise, but this approach has the disadvantage of increasing the output noise.
The general IIR filter system function is
      H    ⁡          (      z      )        =            ∑                        b          n                ⁢                  Z                      -            n                                      1      -              ∑                              a            n                    ⁢                      Z                          -              n                                          where bk are the feedforward coefficients acting on the input signal and ak are the feedback coefficients acting on the past outputs y(n).
A known architecture is shown in FIG. 1 (the direct form II). The idle tone is caused by the IIR memory feedback loop (the denominator in the system function H(z)). When the input x(n)=0, the feedback
            y      1        ⁡          (      n      )        =            ∑              k        =        1              ⁢                  ⁢                  a        k            ⁢                        y          1                ⁡                  (                      n            -            k                    )                    creates new input to the memory formed by the unit delay lines 10; as the result, the output y(n) stays active without going to zero. The common method of dealing with the idle tone is to add a small pseudo random noise to memories y1(n−k) in the hope that the idle tone pattern will be broken. However, the magnitude of the random noise has to be large enough to eliminate idle tone. As a side effect, this noise increases the output noise floor in the output y(n). Also, there is no analytical result to show the required random noise magnitude to completely eliminate idle tone. Large simulations are needed, which only indicate that the probability of existence of idle tone is small enough so that it may never happen.
Filter transfer functions can be described in terms of poles and zeros as explained in a number of textbooks, for example, in “Analysis and Design of Feedback Control Systems”, Massachusetts Institute of Technology Department of Mechanical Engineering, the contents of which are herein incorporated by reference.